home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8174 / 8174.xpi / chrome / antbar.jar / content / lib / array.js next >
Text File  |  2009-12-30  |  3KB  |  150 lines

  1.  
  2.   /*
  3.    * DO NOT EDIT THIS FILE !
  4.    *
  5.    * IT WAS AUTOMATICALLY COPIED FROM THE /lib/ DIRECTORY
  6.    * TO UPDATE IT YOU NEED TO BUILD THE XPI OF THE CURRENT PROJECT
  7.    *
  8.    */
  9.  
  10. // 
  11. //  array.js
  12. //  firefox
  13. //  
  14. //  Created by Zak on 2008-07-03.
  15. //  Copyright 2008-2009 Ant.com. All rights reserved.
  16. // 
  17.  
  18. var AntArray = function () {}
  19. AntArray.prototype = new Array;
  20. Array.prototype.constructor = Array;
  21.  
  22. /**
  23.  * Add array items to the current AntArray
  24.  * @param Array
  25.  */
  26. AntArray.prototype.fromArray = function (arr)
  27. {
  28.     if (!arr || typeof arr != "object")
  29.         return ;
  30.     for (var i = 0; i < arr.length; i++)
  31.         this.push(arr[i]);
  32.  
  33.     return this;
  34. };
  35.  
  36. /**
  37.  * Return an array 
  38.  */
  39. AntArray.prototype.toArray = function ()
  40. {
  41.     var newArr = new Array();
  42.  
  43.     for (var i = 0; i < this.length; i++)
  44.             newArr.push(this[i]);
  45.     return newArr;
  46. };
  47.  
  48. /**
  49.  * Return true if the given value is in the current array
  50.  * @param value         The value to search
  51.  * @param compare       The function to use to test the presence of a similar data
  52.  * @return (boolean)    True if the value is in the current array, false if not.
  53.  */
  54. AntArray.prototype.inArray = function (value, compare)
  55. {
  56.     for (var i = 0; i < this.length; i++)
  57.     {
  58.         if (compare != undefined)
  59.         {
  60.             if (compare(this[i] , value))
  61.                 return true;
  62.         }
  63.         else
  64.         {
  65.             if (this[i] == value)
  66.                 return true;
  67.         }
  68.     }
  69.  
  70.     return false;
  71. };
  72.  
  73. /**
  74.  * Return an array containing only uniques entry from the given one
  75.  * @param compare       (Optional) The function to compare values with
  76.  * @return newArr       The uniqified array
  77.  */
  78. AntArray.prototype.uniq = function (compare)
  79. {
  80.     var newArr = new AntArray();
  81.  
  82.     for (var i = 0; i < this.length; i++)
  83.     {
  84.         if (!newArr.inArray(this[i], compare))
  85.             newArr.push(this[i]);
  86.     }
  87.  
  88.     return newArr;
  89. };
  90.  
  91. /**
  92.  * Return a boolean value wether a value has been removed or not
  93.  * @param value       value to be removed
  94.  */
  95. AntArray.prototype.removeValue = function(value, compare)
  96. {
  97.     for (var i = 0; i < this.length; i++)
  98.     {
  99.         var cond = (compare ? compare(this[i], value) : (this[i] == value));
  100.  
  101.         if (cond)
  102.         {
  103.             this.splice(i, 1);
  104.  
  105.             return true;
  106.         }
  107.     }
  108.  
  109.     return false;
  110. };
  111.  
  112. /**
  113.  * Return a boolean true if an element has been removed
  114.  * @param index     index of the array to be removed
  115.  */
  116. AntArray.prototype.removeIndex = function(index)
  117. {
  118.     if (this.length < index)
  119.     {
  120.         this.splice(index, 1);
  121.  
  122.         return true;
  123.     }
  124.  
  125.     return false;
  126. };
  127.  
  128. /**
  129.  * each iterator for the array
  130.  */
  131. AntArray.prototype.each = function (func)
  132. {
  133.     for (var i = 0; i < this.length; i++)
  134.         func(this[i], i);
  135. };
  136.  
  137. /**
  138.  * toString()
  139.  */
  140. AntArray.prototype.toString = function ()
  141. {
  142.     var s = "AntArray[";
  143.  
  144.     for (var i = 0; i < this.length; i++)
  145.         s += this[i] +",";
  146.  
  147.     return s.substr(0, s.length - 1) + "]";
  148. };
  149.  
  150.